package negocio;

import java.util.HashSet;
import java.util.Set;

public class Vocabulario implements Comparable<Vocabulario> {

    private int idVocabulario;
    private String palabra;
    private short frecuenciaMaxima;
    private short cantidadDocumentos;
    private Set<Posteo> listaPosteo = new HashSet<Posteo>();

    public short getCantidadDocumentos() {
        return cantidadDocumentos;
    }

    public void setCantidadDocumentos(short cantidadDocumentos) {
        this.cantidadDocumentos = cantidadDocumentos;
    }

    public short getFrecuenciaMaxima() {
        return frecuenciaMaxima;
    }

    public void setFrecuenciaMaxima(short frecuenciaMaxima) {
        this.frecuenciaMaxima = frecuenciaMaxima;
    }

    public int getIdVocabulario() {
        return idVocabulario;
    }

    public void setIdVocabulario(int idVocabulario) {
        this.idVocabulario = idVocabulario;
    }

    public String getPalabra() {
        return palabra;
    }

    public void setPalabra(String palabra) {
        this.palabra = palabra;
    }

    public Set<Posteo> getListaPosteo() {
        return listaPosteo;
    }

    public void setListaPosteo(Set<Posteo> listaPosteo) {
        this.listaPosteo = listaPosteo;
    }

    /**
     *
     * @return sbf.toString()
     */
    @Override
    public String toString() {
        String nombreClase = "\n[Vocabulario] ";
        StringBuffer sbf = new StringBuffer();

        sbf.append(nombreClase);
        sbf.append("palabra: ");
        sbf.append(palabra);

        sbf.append(nombreClase);
        sbf.append("frecuenciaMaxima: ");
        sbf.append(frecuenciaMaxima);

        sbf.append(nombreClase);
        sbf.append("cantidadDocumentos: ");
        sbf.append(cantidadDocumentos);

        sbf.append(nombreClase);
        sbf.append("listaPosteo (");
        if (listaPosteo != null && !listaPosteo.isEmpty()) {
            sbf.append(listaPosteo.size() + "): ");
            for (Posteo posteo : listaPosteo) {
                sbf.append(posteo);
            }
        } else {
            sbf.append("0)");
        }

        return sbf.toString();
    }

    public int compareTo(Vocabulario v) {
        if (v != null) {
            if (this.getCantidadDocumentos() > v.getCantidadDocumentos()) {
                return 1;
            } else if (this.getCantidadDocumentos() == v.getCantidadDocumentos()) {
                return 0;
            } else {
                return -1;
            }
        } else {
            return -1;
        }
    }
}
